package com.exam.util;

import com.exam.entity.ApiResult;

/**
 * API结果处理工具类
 */
public class ApiResultHandler {

    /**
     * 创建一个成功的API结果对象，包含指定数据
     *
     * @param object API返回的数据对象
     * @return 成功的ApiResult对象，包含数据、状态码和默认的成功消息
     */
    public static ApiResult success(Object object) {
        ApiResult apiResult = new ApiResult();
        apiResult.setData(object);
        apiResult.setCode(200);
        apiResult.setMessage("请求成功");
        return apiResult;
    }

    /**
     * 创建一个成功的API结果对象，不包含数据
     *
     * @return 成功的ApiResult对象，不包含数据
     */
    public static ApiResult success() {
        return success(null);
    }

    /**
     * 构建一个自定义的API结果对象
     *
     * @param code    API返回的状态码
     * @param message API返回的消息
     * @param data    API返回的数据对象
     * @return 自定义的ApiResult对象，包含状态码、消息和数据
     */
    public static <T> ApiResult buildApiResult(Integer code, String message, T data) {
        ApiResult apiResult = new ApiResult();

        apiResult.setCode(code);
        apiResult.setMessage(message);
        apiResult.setData(data);
        return apiResult;
    }
}
